/*
 * Copyright (C) 2016 yixun All Rights Reserved.
 * 
 * Project.java
 */
package com.emm.yixun.common.model;

import java.io.Serializable;
import java.math.BigDecimal;

import com.alibaba.fastjson.annotation.JSONField;

import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

/**
 * [文件名称]<br>
 * Project.java<br>
 * <br>
 * [文件描述]<br>
 * 房产项目 pojo bean<br>
 * <br>
 * [修改记录]<br>
 * 2016-05-11 11:27:19 创建<br>
 * 
 * @version 1.00
 */
public class Project extends CommonModel implements Serializable {
	/**
	 * 序列化UID
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 主键、自动增长
	 */
	private Long id;
	/**
	 * 项目编码
	 */
	private String projectCode;
	/**
	 * 外键、关联商户信息表（tm_mer_merchant）、项目数据权限要求字段
	 */
	private Long merchantId;
	/**
	 * 部门数据权限要求字段
	 */
	private String userCode;
	/**
	 * 项目数据权限字段
	 */
	private String accessCode;
	/**
	 * 项目名称
	 */
	private String projectName;
	/**
	 * 分期数
	 */
	private Integer stagesNum;
	/**
	 * 所在省份
	 */
	private Long provinceId;
	/**
	 * 所在城市
	 */
	private Long cityId;
	/**
	 * 所在区域
	 */
	private Long areaId;
	/**
	 * 产品类型:[{key:project_type,values:[{no:1,alias:VILLA,remark:别墅},{no:2,alias:TERRACE,remark:排屋},{no:3,alias:MANSION,remark:平层官邸},{no:4,alias:MUTIL_APARTMENT,remark:多层公寓},{no:5,alias:HIGN_APARTMENT,remark:高层公寓},{no:6,alias:URBAN_COMPLEX,remark:城市综合体},{no:7,ali
	 */
	private String projectType;
	/**
	 * 容积率,保留两位小数
	 */
	private BigDecimal plotRatio;
	/**
	 * 绿化率,,保留两位小数
	 */
	private BigDecimal greeningRate;
	/**
	 * 占地面积,,保留两位小数
	 */
	private BigDecimal floorSpace;
	/**
	 * 总户数
	 */
	private Integer householdsTotal;
	/**
	 * 车位数
	 */
	private Integer carportTotal;
	/**
	 * 车位配比
	 */
	private String carportMatching;
	/**
	 * 销售热线
	 */
	private String salesHotline;
	/**
	 * 售楼地址
	 */
	private String salesAddress;
	/**
	 * 物业公司
	 */
	private String propertyCompany;
	/**
	 * 开发商名称
	 */
	private String developerName;
	/**
	 * 开发商地址
	 */
	private String developerAddress;
	/**
	 * 楼盘地址
	 */
	private String premisesAddress;
	/**
	 * 产权年限
	 */
	private Integer propertyYear;
	/**
	 * 建造进度
	 */
	private String buildingSchedule;
	/**
	 * 开工时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date startTime;
	/**
	 * 交付情况:[{key:delivery_status,values:[{no:0,alias:NON_DELIVERY,remark:未交付},{no:1,alias:DELIVERED,remark:已交付}]}]
	 */
	private String deliveryStatus;
	/**
	 * 交付日期
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date deliveryDate;
	/**
	 * 交付情况:[{key:sales_status,values:[{no:1,alias:ON_SELL,remark:在售},{no:2,alias:ALL_SOLD,remark:已售}]}]
	 */
	private String salesStatus;
	/**
	 * 预售证编号
	 */
	private String salesPermissionNo;
	/**
	 * 预售证领取日期
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date salesPermissionDate;
	/**
	 * 楼盘概况
	 */
	private String premisesCase;
	/**
	 * 项目配套
	 */
	private String projectRequirement;
	/**
	 * 交通情况
	 */
	private String trafficCase;
	/**
	 * 是否删除:[{key:del_flag,values:[{no:0,alias:UNDEL,remark:否},{no:1,alias:DEL,remark:是}]}]
	 */
	private String delFlag;
	/**
	 * 排序
	 */
	private Integer sort;
	/**
	 * 创建人ID,关联用户表
	 */
	private Long createUserId;
	/**
	 * 创建时间格式：yyyy-MM-dd HH:mm:ss
	 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;
	/**
	 * 修改人ID,关联用户表
	 */
	private Long updateUserId;
	/**
	 * 修改时间格式：yyyy-MM-dd HH:mm:ss
	 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date updateTime;
	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 项目类型，见枚举ItemTypesEnum
	 */
	private String itemType;
	/**
	 * 装修标准，详情见枚举RenovationTypeEnum
	 */
	private String renovationType;
	/**
	 * 装修补充
	 */
	private String renovationDesc;
	// 是否绑定认购收款0.是 其它值都为否,包括null
	private String bindReceivables;

	private String specialFlow;

	/**
	 * 是否推送至PMO: 0、不推送 1、推送 (值为空也推送)
	 */
	private String pmoPush;

	public String getSpecialFlow() {
		return specialFlow;
	}

	public void setSpecialFlow(String specialFlow) {
		this.specialFlow = specialFlow;
	}

	/**
	 * bindReceivables.
	 *
	 * @return the bindReceivables
	 * @since JDK 1.6
	 */
	public String getBindReceivables() {
		return bindReceivables;
	}

	/**
	 * bindReceivables.
	 *
	 * @param bindReceivables
	 *            the bindReceivables to set
	 * @since JDK 1.6
	 */
	public void setBindReceivables(String bindReceivables) {
		this.bindReceivables = bindReceivables;
	}

	public String getRenovationType() {
		return renovationType;
	}

	public void setRenovationType(String renovationType) {
		this.renovationType = renovationType;
	}

	public String getRenovationDesc() {
		return renovationDesc;
	}

	public void setRenovationDesc(String renovationDesc) {
		this.renovationDesc = renovationDesc;
	}

	/**
	 * 设置 :主键、自动增长
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * 获取 :主键、自动增长
	 */
	public Long getId() {
		return this.id;
	}

	/**
	 * 设置 :项目编码
	 */
	public void setProjectCode(String projectCode) {
		this.projectCode = projectCode;
	}

	/**
	 * 获取 :项目编码
	 */
	public String getProjectCode() {
		return this.projectCode;
	}

	/**
	 * 设置 :外键、关联商户信息表（tm_mer_merchant）、项目数据权限要求字段
	 */
	public void setMerchantId(Long merchantId) {
		this.merchantId = merchantId;
	}

	/**
	 * 获取 :外键、关联商户信息表（tm_mer_merchant）、项目数据权限要求字段
	 */
	public Long getMerchantId() {
		return this.merchantId;
	}

	/**
	 * 设置 :部门数据权限要求字段
	 */
	public void setUserCode(String userCode) {
		this.userCode = userCode;
	}

	/**
	 * 获取 :部门数据权限要求字段
	 */
	public String getUserCode() {
		return this.userCode;
	}

	/**
	 * 设置 :项目数据权限字段
	 */
	public void setAccessCode(String accessCode) {
		this.accessCode = accessCode;
	}

	/**
	 * 获取 :项目数据权限字段
	 */
	public String getAccessCode() {
		return this.accessCode;
	}

	/**
	 * 设置 :项目名称
	 */
	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}

	/**
	 * 获取 :项目名称
	 */
	public String getProjectName() {
		return this.projectName;
	}

	/**
	 * 设置 :分期数
	 */
	public void setStagesNum(Integer stagesNum) {
		this.stagesNum = stagesNum;
	}

	/**
	 * 获取 :分期数
	 */
	public Integer getStagesNum() {
		return this.stagesNum;
	}

	/**
	 * 设置 :所在省份
	 */
	public void setProvinceId(Long provinceId) {
		this.provinceId = provinceId;
	}

	/**
	 * 获取 :所在省份
	 */
	public Long getProvinceId() {
		return this.provinceId;
	}

	/**
	 * 设置 :所在城市
	 */
	public void setCityId(Long cityId) {
		this.cityId = cityId;
	}

	/**
	 * 获取 :所在城市
	 */
	public Long getCityId() {
		return this.cityId;
	}

	/**
	 * 设置 :所在区域
	 */
	public void setAreaId(Long areaId) {
		this.areaId = areaId;
	}

	/**
	 * 获取 :所在区域
	 */
	public Long getAreaId() {
		return this.areaId;
	}

	/**
	 * 设置
	 * :产品类型:[{key:project_type,values:[{no:1,alias:VILLA,remark:别墅},{no:2,alias:TERRACE,remark:排屋},{no:3,alias:MANSION,remark:平层官邸},{no:4,alias:MUTIL_APARTMENT,remark:多层公寓},{no:5,alias:HIGN_APARTMENT,remark:高层公寓},{no:6,alias:URBAN_COMPLEX,remark:城市综合体},{no:7,ali
	 */
	public void setProjectType(String projectType) {
		this.projectType = projectType;
	}

	/**
	 * 获取
	 * :产品类型:[{key:project_type,values:[{no:1,alias:VILLA,remark:别墅},{no:2,alias:TERRACE,remark:排屋},{no:3,alias:MANSION,remark:平层官邸},{no:4,alias:MUTIL_APARTMENT,remark:多层公寓},{no:5,alias:HIGN_APARTMENT,remark:高层公寓},{no:6,alias:URBAN_COMPLEX,remark:城市综合体},{no:7,ali
	 */
	public String getProjectType() {
		return this.projectType;
	}

	/**
	 * 设置 :容积率,保留两位小数
	 */
	public void setPlotRatio(BigDecimal plotRatio) {
		this.plotRatio = plotRatio;
	}

	/**
	 * 获取 :容积率,保留两位小数
	 */
	public BigDecimal getPlotRatio() {
		return this.plotRatio;
	}

	/**
	 * 设置 :绿化率,,保留两位小数
	 */
	public void setGreeningRate(BigDecimal greeningRate) {
		this.greeningRate = greeningRate;
	}

	/**
	 * 获取 :绿化率,,保留两位小数
	 */
	public BigDecimal getGreeningRate() {
		return this.greeningRate;
	}

	/**
	 * 设置 :占地面积,,保留两位小数
	 */
	public void setFloorSpace(BigDecimal floorSpace) {
		this.floorSpace = floorSpace;
	}

	/**
	 * 获取 :占地面积,,保留两位小数
	 */
	public BigDecimal getFloorSpace() {
		return this.floorSpace;
	}

	/**
	 * 设置 :总户数
	 */
	public void setHouseholdsTotal(Integer householdsTotal) {
		this.householdsTotal = householdsTotal;
	}

	/**
	 * 获取 :总户数
	 */
	public Integer getHouseholdsTotal() {
		return this.householdsTotal;
	}

	/**
	 * 设置 :车位数
	 */
	public void setCarportTotal(Integer carportTotal) {
		this.carportTotal = carportTotal;
	}

	/**
	 * 获取 :车位数
	 */
	public Integer getCarportTotal() {
		return this.carportTotal;
	}

	/**
	 * 设置 :车位配比
	 */
	public void setCarportMatching(String carportMatching) {
		this.carportMatching = carportMatching;
	}

	/**
	 * 获取 :车位配比
	 */
	public String getCarportMatching() {
		return this.carportMatching;
	}

	/**
	 * 设置 :销售热线
	 */
	public void setSalesHotline(String salesHotline) {
		this.salesHotline = salesHotline;
	}

	/**
	 * 获取 :销售热线
	 */
	public String getSalesHotline() {
		return this.salesHotline;
	}

	/**
	 * 设置 :售楼地址
	 */
	public void setSalesAddress(String salesAddress) {
		this.salesAddress = salesAddress;
	}

	/**
	 * 获取 :售楼地址
	 */
	public String getSalesAddress() {
		return this.salesAddress;
	}

	/**
	 * 设置 :物业公司
	 */
	public void setPropertyCompany(String propertyCompany) {
		this.propertyCompany = propertyCompany;
	}

	/**
	 * 获取 :物业公司
	 */
	public String getPropertyCompany() {
		return this.propertyCompany;
	}

	/**
	 * 设置 :开发商名称
	 */
	public void setDeveloperName(String developerName) {
		this.developerName = developerName;
	}

	/**
	 * 获取 :开发商名称
	 */
	public String getDeveloperName() {
		return this.developerName;
	}

	/**
	 * 设置 :开发商地址
	 */
	public void setDeveloperAddress(String developerAddress) {
		this.developerAddress = developerAddress;
	}

	/**
	 * 获取 :开发商地址
	 */
	public String getDeveloperAddress() {
		return this.developerAddress;
	}

	/**
	 * 设置 :楼盘地址
	 */
	public void setPremisesAddress(String premisesAddress) {
		this.premisesAddress = premisesAddress;
	}

	/**
	 * 获取 :楼盘地址
	 */
	public String getPremisesAddress() {
		return this.premisesAddress;
	}

	/**
	 * 设置 :产权年限
	 */
	public void setPropertyYear(Integer propertyYear) {
		this.propertyYear = propertyYear;
	}

	/**
	 * 获取 :产权年限
	 */
	public Integer getPropertyYear() {
		return this.propertyYear;
	}

	/**
	 * 设置 :建造进度
	 */
	public void setBuildingSchedule(String buildingSchedule) {
		this.buildingSchedule = buildingSchedule;
	}

	/**
	 * 获取 :建造进度
	 */
	public String getBuildingSchedule() {
		return this.buildingSchedule;
	}

	/**
	 * 设置 :开工时间
	 */
	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	/**
	 * 获取 :开工时间
	 */
	public Date getStartTime() {
		return this.startTime;
	}

	/**
	 * 设置
	 * :交付情况:[{key:delivery_status,values:[{no:0,alias:NON_DELIVERY,remark:未交付},{no:1,alias:DELIVERED,remark:已交付}]}]
	 */
	public void setDeliveryStatus(String deliveryStatus) {
		this.deliveryStatus = deliveryStatus;
	}

	/**
	 * 获取
	 * :交付情况:[{key:delivery_status,values:[{no:0,alias:NON_DELIVERY,remark:未交付},{no:1,alias:DELIVERED,remark:已交付}]}]
	 */
	public String getDeliveryStatus() {
		return this.deliveryStatus;
	}

	/**
	 * 设置 :交付日期
	 */
	public void setDeliveryDate(Date deliveryDate) {
		this.deliveryDate = deliveryDate;
	}

	/**
	 * 获取 :交付日期
	 */
	public Date getDeliveryDate() {
		return this.deliveryDate;
	}

	/**
	 * 设置
	 * :交付情况:[{key:sales_status,values:[{no:1,alias:ON_SELL,remark:在售},{no:2,alias:ALL_SOLD,remark:已售}]}]
	 */
	public void setSalesStatus(String salesStatus) {
		this.salesStatus = salesStatus;
	}

	/**
	 * 获取
	 * :交付情况:[{key:sales_status,values:[{no:1,alias:ON_SELL,remark:在售},{no:2,alias:ALL_SOLD,remark:已售}]}]
	 */
	public String getSalesStatus() {
		return this.salesStatus;
	}

	/**
	 * 设置 :预售证编号
	 */
	public void setSalesPermissionNo(String salesPermissionNo) {
		this.salesPermissionNo = salesPermissionNo;
	}

	/**
	 * 获取 :预售证编号
	 */
	public String getSalesPermissionNo() {
		return this.salesPermissionNo;
	}

	/**
	 * 设置 :预售证领取日期
	 */
	public void setSalesPermissionDate(Date salesPermissionDate) {
		this.salesPermissionDate = salesPermissionDate;
	}

	/**
	 * 获取 :预售证领取日期
	 */
	public Date getSalesPermissionDate() {
		return this.salesPermissionDate;
	}

	/**
	 * 设置 :楼盘概况
	 */
	public void setPremisesCase(String premisesCase) {
		this.premisesCase = premisesCase;
	}

	/**
	 * 获取 :楼盘概况
	 */
	public String getPremisesCase() {
		return this.premisesCase;
	}

	/**
	 * 设置 :项目配套
	 */
	public void setProjectRequirement(String projectRequirement) {
		this.projectRequirement = projectRequirement;
	}

	/**
	 * 获取 :项目配套
	 */
	public String getProjectRequirement() {
		return this.projectRequirement;
	}

	/**
	 * 设置 :交通情况
	 */
	public void setTrafficCase(String trafficCase) {
		this.trafficCase = trafficCase;
	}

	/**
	 * 获取 :交通情况
	 */
	public String getTrafficCase() {
		return this.trafficCase;
	}

	/**
	 * 设置
	 * :是否删除:[{key:del_flag,values:[{no:0,alias:UNDEL,remark:否},{no:1,alias:DEL,remark:是}]}]
	 */
	public void setDelFlag(String delFlag) {
		this.delFlag = delFlag;
	}

	/**
	 * 获取
	 * :是否删除:[{key:del_flag,values:[{no:0,alias:UNDEL,remark:否},{no:1,alias:DEL,remark:是}]}]
	 */
	public String getDelFlag() {
		return this.delFlag;
	}

	/**
	 * 设置 :排序
	 */
	public void setSort(Integer sort) {
		this.sort = sort;
	}

	/**
	 * 获取 :排序
	 */
	public Integer getSort() {
		return this.sort;
	}

	/**
	 * 设置 :创建人ID,关联用户表
	 */
	public void setCreateUserId(Long createUserId) {
		this.createUserId = createUserId;
	}

	/**
	 * 获取 :创建人ID,关联用户表
	 */
	public Long getCreateUserId() {
		return this.createUserId;
	}

	/**
	 * 设置 :创建时间格式：yyyy-MM-dd HH:mm:ss
	 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	/**
	 * 获取 :创建时间格式：yyyy-MM-dd HH:mm:ss
	 */
	public Date getCreateTime() {
		return this.createTime;
	}

	/**
	 * 设置 :修改人ID,关联用户表
	 */
	public void setUpdateUserId(Long updateUserId) {
		this.updateUserId = updateUserId;
	}

	/**
	 * 获取 :修改人ID,关联用户表
	 */
	public Long getUpdateUserId() {
		return this.updateUserId;
	}

	/**
	 * 设置 :修改时间格式：yyyy-MM-dd HH:mm:ss
	 */
	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	/**
	 * 获取 :修改时间格式：yyyy-MM-dd HH:mm:ss
	 */
	public Date getUpdateTime() {
		return this.updateTime;
	}

	/**
	 * 设置 :备注
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**
	 * 获取 :备注
	 */
	public String getRemark() {
		return this.remark;
	}

	public String getItemType() {
		return itemType;
	}

	public void setItemType(String itemType) {
		this.itemType = itemType;
	}

	public String getPmoPush() {
		return pmoPush;
	}

	public void setPmoPush(String pmoPush) {
		this.pmoPush = pmoPush;
	}
}
